// validacion.js

_.mixin({
	validacionEnsayes: function (element, target) {
		// porcentaje Fe Real
		if ('pctFeReal' === target.id) {
			var tonFeReal = (parseFloat(element.find('#pctFeReal').val()) *
				parseFloat(element.find('#pesoHumedo').val())) / 100;

			element.find('#tonFeReal').val(Math.ceil(tonFeReal));
		}

		//
		if ('caoTotReal' === target.id) {
			var tonCaoReal = (parseFloat(element.find('#caoTotReal').val()) * 
				parseFloat(element.find('#pesoHumedo').val())) / 100;

			element.find('#tonCaOReal').val(Math.ceil(tonCaoReal));
		}

		//
		if (_.indexOf(['caoTotReal', 'pctSIO2Real'], target.id) > -1) {
			var caOSiO2Real = +(parseFloat(element.find('#caoTotReal').val())) / 
				parseFloat(element.find('#pctSIO2Real').val());

			element.find('#caOSiO2Real').val(caOSiO2Real.toFixed(2));
		}
		
		//
		if (_.indexOf(['pctFeReal', 'pctSIO2Real'], target.id) > -1) {
			var feSiO2Real = +parseFloat(element.find('#pctFeReal').val()) /
				parseFloat(element.find('#pctSIO2Real').val());

			element.find('#pctFeSiO2Real').val(feSiO2Real.toFixed(2));
		}
		
		// 
		if (_.indexOf(['pctCuReal', 'pctAsReal'], target.id) > -1) {
			var cuAsReal = 
				+parseFloat(element.find('#pctCuReal').val()) / 
				parseFloat(element.find('#pctAsReal').val());

			element.find('#cuAsReal').val(cuAsReal.toFixed(2));
		}
		
		// As Ab Real
		if (_.indexOf(['pctSbReal', 'pctAsReal'], target.id) > -1) {
			var asAbReal = +parseFloat(element.find('#pctAsReal').val()) /
				parseFloat(element.find('#pctSbReal').val());

			element.find('#asSbReal').val(asAbReal.toFixed(2));
		}
		
		// Ag Real
		if ('gtAgReal' === target.id) {
			var agReal = +(parseFloat(element.find('#gtAgReal').val())) / 1000;
			element.find('#agReal').val(agReal.toFixed(2));
		}
		
		// Cu Pb Real
		if(_.indexOf(['pctCuReal', 'pctPbReal'], target.id) > -1) {
			var cuPbReal = +parseFloat(element.find('#pctCuReal').val()) /
				parseFloat(element.find('#pctPbReal').val()) * 100;

			element.find('#cuPb').val(cuPbReal.toFixed(2));
		}
	},
	validacionMixturas: function (element, target) {
		// porcentaje So4Calc
		if (_.indexOf(['pctSTotalCalc', 'pctSUtil'], target.id) > -1) {
			var pctSo4CalC = +(parseFloat(element.find('#pctSTotalCalc').val() || 0))
				- parseFloat(element.find('#pctSUtil').val() || 0);

			element.find('#pctSo4CalC').val(pctSo4CalC.toFixed(2));
		}

		// porcentaje AgPbCalC
		if (_.indexOf(['kgTonAgCalC', 'pctPbCalC'], target.id) > -1) {
			var pctAgPbCalC = parseFloat(element.find('#kgTonAgCalC').val())
				/ parseFloat(element.find('#pctPbCalC').val()) * 100;

			element.find('#pctAgPbCalC').val(pctAgPbCalC.toFixed(2));
		}

		// Suma de total de ensayos calculados
		if (target.className.indexOf('sum-total-ensayos-cal-c') > -1) {
			var sumTotalEnsayosCalC = 0;

			element.find('.sum-total-ensayos-cal-c').each(function () {
				sumTotalEnsayosCalC += parseFloat($(this).val());
			});

			sumTotalEnsayosCalC -= parseFloat(element.find('#pctSUtil').val());

			element.find('#sumTotalEnsayosCalC').val(sumTotalEnsayosCalC.toFixed(2));
		}

		//
		if (_.indexOf(['pctSiO2CalC', 'pctFeCalc'], target.id) > -1) {
			var feSiO2 =
				parseFloat(element.find('#pctFeCalc').val()) /
				parseFloat(element.find('#pctSiO2CalC').val());

			element.find('#FeSiO2').val(feSiO2.toFixed(2));
		}

		// 
		if (_.indexOf(['pesoHumedo', 'pctCascFeTons', 'pctSiO2CalC', 'pctFeCalc'], target.id) > -1) {
			var feSiO2CasCal = (
				parseFloat(element.find('#pesoHumedo').val()) *
				parseFloat(element.find('#pctFeCalc').val())
				+ parseFloat(element.find('#pctCascFeTons').val())
				* 73
			) / (parseFloat(element.find('#pesoHumedo').val()) + 
				parseFloat(element.find('#pctCascFeTons').val())) 
				/ parseFloat(element.find('#pctSiO2CalC').val());

			element.find('#FeSiO2CasCal').val(feSiO2CasCal.toFixed(2));
		}

		// 
		if (_.indexOf(['pctCaOCalc', 'pctSiO2CalC'], target.id) > -1) {
			var caOSiO2Calc = 
				parseFloat(element.find('#pctCaOCalc').val()) /
				parseFloat(element.find('#pctSiO2CalC').val());

			element.find('#CaOSiO2Calc').val(caOSiO2Calc.toFixed(2));
		}

		// 
		if (_.indexOf(['pctSbCALC', 'pctPbCalC'], target.id) > -1) {
			var sbPbCalC = 
				parseFloat(element.find('#pctSbCALC').val()) / 
				parseFloat(element.find('#pctPbCalC').val()) * 100;

			element.find('#SbPbCalC').val(sbPbCalC.toFixed(2));
		}

		// 
		if (_.indexOf(['pctCuCalC', 'pctPbCalC'], target.id) > -1) {
			var cuPbCalC = 
				parseFloat(element.find('#pctCuCalC').val()) /
				parseFloat(element.find('#pctPbCalC').val()) * 100;

			element.find('#CuPbCalC').val(cuPbCalC.toFixed(2));
		}

		//
		if (_.indexOf(['pctCuCalC', 'pctAsCalC'], target.id)) {
			var cuAsCalC = 
				parseFloat(element.find('#pctCuCalC').val()) / 
				parseFloat(element.find('#pctAsCalC').val());

			element.find('#CuAsCalC').val(cuAsCalC.toFixed(2));
		}

		//
		if (_.indexOf(['pctAsCalC', 'pctSbCALC'], target.id) > -1) {
			var asSbCalC = 
				parseFloat(element.find('#pctAsCalC').val()) / 
				parseFloat(element.find('#pctSbCALC').val());

			element.find('#AsSbCalC').val(asSbCalC.toFixed(2));
		}

		//
		if (target.className.indexOf('suma-ensayo-funde') > -1) {
			var sumaEnsayoFunde = 0;

			element.find('.suma-ensayo-funde').each(function () {
				sumaEnsayoFunde += parseFloat($(this).val());
			});

			element.find('#sumaEnsayoFunde').val(sumaEnsayoFunde.toFixed(2));
		}

		var sumaEnsayoNoFunde =
			+parseFloat(element.find('#sumTotalEnsayosCalC').val()) -
			parseFloat(element.find('#sumaEnsayoFunde').val());

		element.find('#sumaEnsayoNoFunde').val(sumaEnsayoNoFunde.toFixed(2));

		if (_.indexOf(['pctSecsRefineria', 'pctSecZinc', 'pctSecFundicion'], target.id) > -1) {
			var totalSecsCalc = 
				parseFloat(element.find('#pctSecsRefineria').val()) +
				parseFloat(element.find('#pctSecZinc').val()) +
				parseFloat(element.find('#pctSecFundicion').val());

			element.find('#totalSecsCalc').val(totalSecsCalc.toFixed(2));
		}

		// TONELAJE COSTO CALC
		if (target.className.indexOf('tonelaje-costo-calc') > -1) {
			var tonelajeCostoCalc = 0;

			element.find('.tonelaje-costo-calc').each(function () {
				tonelajeCostoCalc += (+parseFloat($(this).val()));
			});

			element.find('#tonelajeCostoCalC').val(tonelajeCostoCalc.toFixed(2));
		}

		// Suma de fundentes (Pct)
		if (target.className.indexOf('suma-de-fundentes') > -1) {
			var sumaDeFundentes = 0;

			element.find('.suma-de-fundentes').each(function () {
				sumaDeFundentes += parseFloat($(this).val());
			});

			element.find('#pctSumaFundentes').val(sumaDeFundentes.toFixed(2));
		}

		// CU/(As + Sb) Calc
		if (_.indexOf(['pctCuCalC', 'pctAsCalC', 'pctCdCalC'], target.id) > -1) {
			var cuAsSbCalc = parseFloat(element.find('#pctCuCalC').val()) / 
				(parseFloat(element.find('#pctAsCalC').val()) + parseFloat(element.find('#pctCdCalC').val()));

			element.find('#cuAsSbCalc').val(cuAsSbCalc.toFixed(2));
		}

	},
    validaEdicionPorFecha: function (fechaEnCadena, anioPermitido) {
        var fecha = new Date(fechaEnCadena),
            anioActual = new Date().getFullYear();
        anioPermitido = anioPermitido || anioActual;
        return fecha.getFullYear() === anioPermitido; 
    }
});
